Platform Explorer / Nuxeo Platform 2023.22

Contribution org.nuxeo.retention.pageprovider.contrib--providers

This contribution is part of XML component org.nuxeo.retention.pageprovider.contrib inside nuxeo-retention-2023.4.11.jar /OSGI-INF/retention-pageproviders.xml

Extension Point

Extension point providers of component PageProviderService.

Registration Order

28
The registration order represents the order in which this contribution was registered on its target extention point. This will impact the override/merge behaviour when it is implemented on the target service, and is useful for proper customization of existing contributions.
You can influence this order by adding "require" tags in the containing component declaration, to make sure it is resolved after another component (see "Resolution Order" on components).

Contributed Items

  • <coreQueryPageProvider name="manual_retention_rule_suggestion">
          <whereClause>
            <predicate operator="=" parameter="retention_rule:docTypes">
              <field name="docType"/>
            </predicate>
            <fixedPart escapeParameters="true" quoteParameters="false"> dc:title ILIKE '?%' AND ecm:mixinType =
              'RetentionRule' AND retention_rule:enabled = 1 AND
              ecm:isTrashed = 0
            </fixedPart>
          </whereClause>
          <sort ascending="true" column="ecm:pos"/>
          <pageSize>50</pageSize>
        </coreQueryPageProvider>
  • <coreQueryPageProvider name="active_retention_rule">
          <pattern escapeParameters="true" quoteParameters="false"> SELECT
            * FROM Document WHERE ecm:mixinType = 'RetentionRule' AND
            retention_rule:enabled = 1 AND ecm:isTrashed = 0
          </pattern>
          <sort ascending="true" column="ecm:pos"/>
          <pageSize>50</pageSize>
        </coreQueryPageProvider>
  • <genericPageProvider class="org.nuxeo.elasticsearch.provider.ElasticSearchNxqlPageProvider" name="retention_search">
          <searchDocumentType>RetentionSearch</searchDocumentType>
          <whereClause>
            <fixedPart>
              file:content/name IS NOT NULL
              AND ecm:isVersion = 0
              AND ecm:mixinType != 'HiddenInNavigation'
            </fixedPart>
            <predicate operator="FULLTEXT" parameter="ecm:fulltext">
              <field name="ecm_fulltext" schema="retention_search"/>
            </predicate>
            <predicate operator="IN" parameter="dc:creator">
              <field name="dc_creator" schema="retention_search"/>
            </predicate>
          </whereClause>
          <aggregates>
            <aggregate id="doc_type_agg" parameter="ecm:primaryType" type="terms">
              <field name="doc_type_agg" schema="retention_search"/>
              <properties>
                <property name="size">10</property>
              </properties>
            </aggregate>
            <aggregate id="rules_agg" parameter="record:ruleIds" type="terms">
              <field name="rules_agg" schema="retention_search"/>
              <properties>
                <property name="size">10</property>
              </properties>
            </aggregate>
            <aggregate id="record_retain_agg" parameter="record:retainUntil" type="date_range">
              <field name="record_retain_agg" schema="retention_search"/>
              <properties>
                <property name="format">"dd-MM-yyyy"</property>
              </properties>
              <dateRanges>
                <dateRange fromDate="now-24H" key="last24h" toDate="now"/>
                <dateRange fromDate="now-7d" key="lastWeek" toDate="now-24H"/>
                <dateRange fromDate="now-1M" key="lastMonth" toDate="now-7d"/>
                <dateRange fromDate="now-1y" key="lastYear" toDate="now-1M"/>
                <dateRange key="priorToLastYear" toDate="now-1y"/>
              </dateRanges>
            </aggregate>
            <aggregate id="ecm_retain_agg" parameter="ecm:retainUntil" type="date_range">
              <field name="ecm_retain_agg" schema="retention_search"/>
              <properties>
                <property name="format">"dd-MM-yyyy"</property>
              </properties>
              <dateRanges>
                <dateRange fromDate="now" key="next24Hours" toDate="now+24H"/>
                <dateRange fromDate="now+24H" key="beforeAWeek" toDate="now+7d"/>
                <dateRange fromDate="now+7d" key="beforeAMonth" toDate="now+1M"/>
                <dateRange fromDate="now+1M" key="beforeAYear" toDate="now+1y"/>
                <dateRange fromDate="now+1y" key="afterAYear" toDate="now+1000y"/>
                <dateRange fromDate="now+1000y" key="indeterminate"/>
              </dateRanges>
            </aggregate>
          </aggregates>
          <sort ascending="true" column="ecm:retainUntil"/>
          <quickFilters>
            <quickFilter name="withoutRule">
              <clause>record:ruleIds/* IS NULL</clause>
              <clause>ecm:retainUntil IS NULL</clause>
            </quickFilter>
            <quickFilter name="withRule">
              <clause>record:ruleIds/* IS NOT NULL</clause>
              <clause>ecm:retainUntil IS NOT NULL</clause>
            </quickFilter>
            <quickFilter name="hasLegalHold">
              <clause>ecm:hasLegalHold = 1</clause>
            </quickFilter>
            <quickFilter name="hasNotLegalHold">
              <clause>ecm:hasLegalHold = 0</clause>
            </quickFilter>
            <quickFilter name="exceptTrashed">
              <clause>ecm:isTrashed = 0</clause>
            </quickFilter>
          </quickFilters>
          <pageSize>20</pageSize>
        </genericPageProvider>

XML Source

<extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">

    <coreQueryPageProvider name="manual_retention_rule_suggestion">
      <whereClause>
        <predicate operator="=" parameter="retention_rule:docTypes">
          <field name="docType"/>
        </predicate>
        <fixedPart escapeParameters="true" quoteParameters="false"> dc:title ILIKE '?%' AND ecm:mixinType =
          'RetentionRule' AND retention_rule:enabled = 1 AND
          ecm:isTrashed = 0
        </fixedPart>
      </whereClause>
      <sort ascending="true" column="ecm:pos"/>
      <pageSize>50</pageSize>
    </coreQueryPageProvider>

    <coreQueryPageProvider name="active_retention_rule">
      <pattern escapeParameters="true" quoteParameters="false"> SELECT
        * FROM Document WHERE ecm:mixinType = 'RetentionRule' AND
        retention_rule:enabled = 1 AND ecm:isTrashed = 0
      </pattern>
      <sort ascending="true" column="ecm:pos"/>
      <pageSize>50</pageSize>
    </coreQueryPageProvider>

    <genericPageProvider class="org.nuxeo.elasticsearch.provider.ElasticSearchNxqlPageProvider" name="retention_search">
      <searchDocumentType>RetentionSearch</searchDocumentType>
      <whereClause>
        <fixedPart>
          file:content/name IS NOT NULL
          AND ecm:isVersion = 0
          AND ecm:mixinType != 'HiddenInNavigation'
        </fixedPart>
        <predicate operator="FULLTEXT" parameter="ecm:fulltext">
          <field name="ecm_fulltext" schema="retention_search"/>
        </predicate>
        <predicate operator="IN" parameter="dc:creator">
          <field name="dc_creator" schema="retention_search"/>
        </predicate>
      </whereClause>
      <aggregates>
        <aggregate id="doc_type_agg" parameter="ecm:primaryType" type="terms">
          <field name="doc_type_agg" schema="retention_search"/>
          <properties>
            <property name="size">10</property>
          </properties>
        </aggregate>
        <aggregate id="rules_agg" parameter="record:ruleIds" type="terms">
          <field name="rules_agg" schema="retention_search"/>
          <properties>
            <property name="size">10</property>
          </properties>
        </aggregate>
        <aggregate id="record_retain_agg" parameter="record:retainUntil" type="date_range">
          <field name="record_retain_agg" schema="retention_search"/>
          <properties>
            <property name="format">"dd-MM-yyyy"</property>
          </properties>
          <dateRanges>
            <dateRange fromDate="now-24H" key="last24h" toDate="now"/>
            <dateRange fromDate="now-7d" key="lastWeek" toDate="now-24H"/>
            <dateRange fromDate="now-1M" key="lastMonth" toDate="now-7d"/>
            <dateRange fromDate="now-1y" key="lastYear" toDate="now-1M"/>
            <dateRange key="priorToLastYear" toDate="now-1y"/>
          </dateRanges>
        </aggregate>
        <aggregate id="ecm_retain_agg" parameter="ecm:retainUntil" type="date_range">
          <field name="ecm_retain_agg" schema="retention_search"/>
          <properties>
            <property name="format">"dd-MM-yyyy"</property>
          </properties>
          <dateRanges>
            <dateRange fromDate="now" key="next24Hours" toDate="now+24H"/>
            <dateRange fromDate="now+24H" key="beforeAWeek" toDate="now+7d"/>
            <dateRange fromDate="now+7d" key="beforeAMonth" toDate="now+1M"/>
            <dateRange fromDate="now+1M" key="beforeAYear" toDate="now+1y"/>
            <dateRange fromDate="now+1y" key="afterAYear" toDate="now+1000y"/>
            <dateRange fromDate="now+1000y" key="indeterminate"/>
          </dateRanges>
        </aggregate>
      </aggregates>
      <sort ascending="true" column="ecm:retainUntil"/>
      <quickFilters>
        <quickFilter name="withoutRule">
          <clause>record:ruleIds/* IS NULL</clause>
          <clause>ecm:retainUntil IS NULL</clause>
        </quickFilter>
        <quickFilter name="withRule">
          <clause>record:ruleIds/* IS NOT NULL</clause>
          <clause>ecm:retainUntil IS NOT NULL</clause>
        </quickFilter>
        <quickFilter name="hasLegalHold">
          <clause>ecm:hasLegalHold = 1</clause>
        </quickFilter>
        <quickFilter name="hasNotLegalHold">
          <clause>ecm:hasLegalHold = 0</clause>
        </quickFilter>
        <quickFilter name="exceptTrashed">
          <clause>ecm:isTrashed = 0</clause>
        </quickFilter>
      </quickFilters>
      <pageSize>20</pageSize>
    </genericPageProvider>

  </extension>